﻿using AiShow.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AiShow.IDAL
{
    public interface IVideoService
    {
        /// <summary>
        /// 待上传视频
        /// </summary>
        /// <param name="videoId">视频Id</param>
        /// <param name="userId">用户Id</param>
        /// <param name="headline">标题</param>
        /// <param name="location">位置</param>
        /// <returns></returns>
        TBVideos ToBeUpload(string videoId, int userId, string headline, string location = null);

        /// <summary>
        /// 获取处理中的视频Id列表
        /// </summary>
        /// <returns></returns>
        List<string> GetInProcessVideoIds();

        /// <summary>
        /// 批量更新视频信息
        /// </summary>
        /// <param name="videos">要更新的视频列表</param>
        /// <returns></returns>
        Task UpdateVideos(List<TBVideos> videos);

        /// <summary>
        /// 获取视频列表
        /// </summary>
        /// <returns></returns>
        List<TBVideos> GetVideos();

        /// <summary>
        /// 通过视频Id获取视频信息
        /// </summary>
        /// <param name="videoId"></param>
        /// <returns></returns>
        TBVideos GetVideoByVideoId(string videoId);

        /// <summary>
        /// 通过用户Id获取视频列表
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        List<TBVideos> GetVideosByUserId(int userId);

        /// <summary>
        /// 删除视频
        /// </summary>
        /// <param name="videoId">视频Id</param>
        void DeleteVideo(string videoId);
    }
}

